約 188,380 件
https://w.atwiki.jp/futoyama/pages/74.html
Luaというスクリプト言語がある。非常にコンパクトかつ高速に動作し、C/C++とも親和性がよいらしい。 ということで、Luaを初めてみる。 インストール Cygwin1.7.xへのインストール 参考Webサイト LuaからC言語の関数を呼び出す CからLuaを実行する。 バイナリダンプ(Hex dump) インストールしたはずのモジュールが見つからない場合 バイナリデータを文字列に変換してファイルに書きこむ インストール Linuxの場合はパッケージにあるので、aptやyumでインストールすればよいでしょう。 Linuxでソースからコンパイルする場合は、以下のようにする。 1)以下からソース用のtarballをダウンロードする。 http //www.lua.org/ftp/ 2)展開すると「INSTALL」というファイルがあるのでそれを一読する。 3) 「make linux」 を実行 linuxのところには、対象のプラットホームを名をいれれば、それに応じてメイクできる。 指定可能なものは以下のとおり。 $ make Please do make PLATFORM where PLATFORM is one of these aix ansi bsd freebsd generic linux macosx mingw posix solaris See INSTALL for complete instructions. 4) 「make install」 を実行するとインストール完了。 なお、デフォルトは”/usr/local”配下にインストールされます。別のところがよければ、以下のようにします。 $ make install INSTALL_TOP=xxx xxxにはインストール先のパスを指定 Cygwin1.7.xへのインストール Windowsでluaを使いたくなりCygwinにインストールしてみた。 http //lua-users.org/wiki/BuildingLua 上記にWindowsでのインストール方法が書いてあった。Cygwin以外もあったが、コンパイル環境を整えるのが面倒なので、インストール済みのCygwinにインストールしてみた。 ソースtarballを展開したら、以下の手順でインストールします。 1) src/Makefile に以下を追加 cygwin $(MAKE) "LUA_A=cyglua-5.1.dll" "LUA_T=lua.exe" \ "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ "MYCFLAGS=-DLUA_USE_LINUX -DLUA_BUILD_AS_DLL" \ "MYLIBS=-lreadline -lhistory" "MYLDFLAGS=-s" lua.exe 2) Makefile の以下にcygwinを追加 # Convenience platforms targets. PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris cygwin --これ 3) 「make cygwin」を実行 4) 「make install」を実行 5) cyglua-5.1.dll のコピー make installではcyglua-5.1.dllがパスのとおったところにインストールされない。 src/cyglua-5.1.dll をパスのとおっている /usr/local/lib にコピーして、インストール完了。 参考Webサイト 本家サイト http //www.lua.org/ lua-users wiki(サンプルがたくさんある) http //lua-users.org/wiki/ Lua5.1リファレンスマニュアル(日本語訳) http //sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html Lua文法最速マスター http //handasse.blogspot.com/2010/02/lua.html LuaからC言語の関数を呼び出す LuaからCの関数を利用するには、いくつかの決まりがあります。 1)Cの関数は以下のインターフェースで定義する。Luaから利用可能な関数をグルー関数と呼ぶ(LuaとCを糊付けするため)。 typedef int (*lua_CFunction) (lua_State *L); 2)グルー関数をLuaの関数として呼び出せるようにするため、以下の"luaL_Reg"構造体にグルー関数のポインタとLuaの関数名の対応を定義し、"luaL_register"関数でレジストする。 typedef struct luaL_Reg { const char *name; lua_CFunction func; } luaL_Reg; 3)luaL_register関数は以下のインターフェースの関数内に定義する。 int luaopen_ モジュール名 (lua_State *L) ※モジュール名のところをどうすべきかの説明が見つけられなかった。1)〜3)をすべて1つのCソースにして、その拡張子をとったものをモジュール名とすればOKだった。 4)Lua関数とグルー関数間の引数と戻り値の授受はLua独自のスタックを使用する。Lua関数に渡す引数は順に自動的にスタックに積まれ、グルー関数からはスタックのインデックス(第1引数がインデックス1、第2引数が2、・・・)で取得できる。グルー関数からの戻り値は、戻り値の型に応じた"lua_push*"関数によりスタックにpushすることで、Lua関数の戻り値として取得できる(複数pushすれば、複数の戻り値も取得できる)。 5)Luaがグルー関数の定義を探せるよう、グルー関数をダイナミックリンクライブラリにして、Luaスクリプトからrequire関数でリンクする。 以上を踏まえ、2つの数字を与えると掛け算の答えを出すmul関数と、2つの数字を与えるとその商と余りを出すdiv関数を例にして、そのグルー関数と、それを呼び出すためのLuaスクリプトを以下に示す。 a.C言語のグルー関数(calc.c) #include lua.h #include lualib.h #include lauxlib.h static int mul(lua_State * L) { int val1 = lua_tonumber(L, 1); /* 第1引数を数字としてスタックから取り出す */ int val2 = lua_tonumber(L, 2); /* 第2引数を数字としてスタックから取り出す */ lua_pushnumber(L, val1 * val2); /* 積をスタックに積む- 第1の戻り値 */ return 1; /* グルー関数の戻り値の数1を返却 */ } static int div(lua_State * L) { int val1 = lua_tonumber(L, 1); /* 第1引数を数字としてスタックから取り出す */ int val2 = lua_tonumber(L, 2); /* 第2引数を数字としてスタックから取り出す */ lua_pushnumber(L, val1 / val2); /* 商をスタックに積む- 第1の戻り値 */ lua_pushnumber(L, val1 % val2); /* 余りをスタックに積む- 第2の戻り値 */ return 2; /* グルー関数の戻り値の数2を返却 */ } /* lsleepモジュールに登録する関数のマッピング定義 */ static const struct luaL_reg calctable[] = { {"mul", mul}, {"div", div}, {NULL, NULL},/* 最後はダミー行が必要 */ }; /* lsleepモジュール初期化関数 */ int luaopen_calc(lua_State * L) { luaL_register(L, "calc", calctable); return 1; } b.Luaスクリプト(test.lua) require("calc")-- calc.soの動的リンク x = 8 y = 3 seki = calc.mul( x, y ) -- calcはレジストしたモジュール名 syou, amari = calc.div( x, y ) print(x .. " * " .. y .. " = " .. seki ) print(x .. " / " .. y .. " = " .. syou .. " ・・・ " .. amari ) 実行してみると、以下のとおり計算結果が得られる。 $ lua test.lua 8 * 3 = 24 8 / 3 = 2 ・・・ 2 【参考】Linuxでのダイナミックリンクライブラリ作成 以下のとおり、普通に作ればよい。Lua用のヘッダやライブラリをインストールしたパスを指定する必要がある。 gcc -shared -fPIC -o calc.so calc.c -L/opt/develop/lib -llua -I/opt/develop/include また、上記ではカレントにcalc.soを作成しているが、そのままだとLuaがcalc.soを見つけられないので、環境変数LUA_CPATHにカレントディレクトリを指定する必要がある。 export LUA_CPATH="./?.so" CからLuaを実行する。 CからLuaを実行する形態としては以下のものがある。 1)Luaのスクリプト全体を実行する。 2)CソースかかれたLuaの命令を実行する。 3)Luaスクリプトに書かれた関数を実行する。 ーー>Comming Soon!! バイナリダンプ(Hex dump) 指定されたデータを指定開始位置から指定終了位置までバイナリダンプ(ヘキサダンプ)する関数(hexdump)を作ってみた。 動作確認のため、コマンドライン引数で指定されたファイルをダンプするようにした。 以下のデータで実行すると、以下のように表示する。 $ cat test.dat 0123456789abcdef0--------------f $ lua hexdump.lua test.dat 00000000 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66 0123456789abcdef 00000010 30 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 66 0--------------f 00000020 0A $ lua hexdump.lua test.dat 10 15 00000009 39 61 62 63 64 65 9abcde ソース(hexdump.lua)は以下からどうぞ。 http //www35.atwiki.jp/futoyama?cmd=upload act=open pageid=74 file=hexdump.lua インストールしたはずのモジュールが見つからない場合 LuaでXML-RPCをためしてみるため、Lua XML-RPCをインストールした。ためしにアーカイブの付属サンプルを動かそうとしたら、以下のエラーがでた。 $ lua server_xavante.lua lua /mnt/work/develop/share/lua/5.1/xmlrpc/server.lua 11 module xmlrpc not found no field package.preload[ xmlrpc ] no file /mnt/work/develop/share/lua/5.1/xmlrpc.lua no file ./xmlrpc.lua no file /mnt/work/develop/lib/lua/5.1/xmlrpc.so no file ./xmlrpc.so stack traceback [C] in function require /mnt/work/develop/share/lua/5.1/xmlrpc/server.lua 11 in main chunk [C] in function require server_xavante.lua 6 in main chunk [C] ? Lua XML-RPCのソースは以下の3つだけであり、Luaソースのみで、Cなどのモジュールはない。インストールも環境変数LUA_PATHで指定されたところに「xmlrpc」ディレクトリを作成し、そこに3つのソースをコピーするだけ。 $ ls src http.lua init.lua server.lua しかしrequireコマンドは「xmlrpc.lua」を探そうとしてないのでエラーになっている。リファレンスマニュアル の「package.path」の説明を見ると「init.lua」の文字が見つかった。私のLuaはデフォルトとは別のパスにをインストールしており、package.pathを環境変数LUA_PATHで設定している。エラーの原因は、package.pathにinit.luaがもれているためだった。標準のパスでインストールされた環境のpackage.pathを見て、漏れているものを追加して、無事起動できた。 ■デフォルトのパスでインストールした環境 $ lua Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio print( package.path) ./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib64/lua/5.1/?.lua;/usr/lib64/lua/5.1/?/init.lua ■変更内容 export LUA_PATH="./?.lua;/mnt/work/develop/share/lua/5.1/?.lua;/mnt/work/develop/share/lua/5.1/?/init.lua" バイナリデータを文字列に変換してファイルに書きこむ file write(value1, ...) を使うと、ファイルにデータを書き込める。 リファレンスマニュアルによれば、引数(書きこむデータ)には文字列か数値を指定できるとあるので、数値を指定すればバイナリデータを書き込めるかと思いきや、数値を文字列にしたもの(1234は"1234")が書かれてしまう。 file writeのソース(liolib.cのg_write())を見ると、以下のとおりで、数値だとfprintf()を使い、文字列だとfwrite()を使っている。 if (lua_type(L, arg) == LUA_TNUMBER) { /* optimization could be done exactly as for strings */ status = status fprintf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) 0; } else { size_t l; const char *s = luaL_checklstring(L, arg, l); status = status (fwrite(s, sizeof(char), l, f) == l); } Luaの文字列は `\0´ で表されるゼロを含み、いかなる8ビット値も含むことができるので、バイナリデータを文字列にすれば、バイナリデータをファイルに書くことができる。lua-users wikiにバイナリデータを文字列にするwite_format()が出ていた(以下に引用)。 -- Example -- write_format(true, "421", 0x12345678, 0x432931, 0x61) returns "xV4.1)a", -- a 7 bytes string whose characters are in hex 78 56 45 12 31 29 61 function write_format(little_endian, format, ...) local res = local values = {...} for i=1,#format do local size = tonumber(format sub(i,i)) local value = values[i] local str = "" for j=1,size do str = str .. string.char(value % 256) value = math.floor(value / 256) end if not little_endian then str = string.reverse(str) end res = res .. str end return res end これを使うと、以下のとおりバイナリデータをファイルにかける。 fh, msg = io.open( "testfile.bin", "wb" ) dat = write_format(true, "42",0x12345678, 0xabcd ) fh write2( dat ) fh flush() fh close() $ hexdump -C testfile.bin 00000000 78 56 34 12 cd ab |xV4...| 00000006 名前 コメント
https://w.atwiki.jp/mobile_no_hdd/pages/19.html
あと2年♪ 伝説の細菌氏の書き込み・環境不明・Win2000 517 :細菌:03/02/03 18 17 ID ??? どうも。 WIN2000のダイエットですが、WINDOWS2000PROsp3+DX8.1を 450Mbyteでインストールできました。 気合入れてダイエットすれば、あと50Mbyteほど削れそうでした。 http //pc2.2ch.net/test/read.cgi/win/1030199984/l50 ただ、メインメモリは最低でも256Mbyte以上欲しいところです。 519 :細菌:03/02/03 19 26 ID ??? やり方としては、WIN2000インストール後最大の敵であるpagefile.sysを RAMディスク上に追い出します。 私はERAMをお勧めします。 ERAMドライバをインストールしてください。 すぐに再起動を催促されますが、無視してERAMの設定を済ませましょう。 設定で”メモリ確保元”を”OS管理外”にし、 ”スワップファイルを設定可能にする”にチェックをつけます。 ”ディスクサイズ”ですが、システムが使うメモリ領域は、普通は160Mbyte在れば十分だと思います。 この辺りは各個人の環境と相談してください。 以降、256Mbyteのメインメモリに96MbyteのRAMディスクとして説明します。 ”ディスクサイズ”100000KB=100Mbyte設定 BOOT.iniに multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect /MAXMEM=160 (/MAXMEM=160によって、WINが使うメモリが160Mに制限され、残りの分がRAMディスクに割り振られる) (multi(0)disk(0)rdisk(0)partition(1)\WINNT= の部分は各環境によって異なります) ERAMの設定が終わったら再起動してください。 再起動後、Zに設定分のRAMディスクがある事を確認します。 次はpagefile.sysを引越しましょう。 520 :細菌:03/02/03 19 28 ID ??? マイコンピュータ右クリック-プロパティ-詳細-パフォーマンスオプションと開いていきます。 仮想メモリの変更ボタンを押し、既存のpagefileの設定を消します。 具体的には、C:にpagefileがある場合、C:を選択し”初期サイズ”と”最大サイズ”の数値を消します。 設定ボタンを押します。 次に、Z:を選択し、”初期サイズ”に2、”最大サイズ”に70くらいの数値を入力して、設定を押します。 再起動してください。 OSが立ち上がった直後、仮想メモリが足らない云々のメッセージが出ますが、OKを押します。 以降、必要に応じてRAMディスク上のpagefileが大きくなっていきますが、 私のPCでは80Mbyte以上になった事がありませんので安心してください。 これで無駄にでかいpagefileをHDD上から消すことができました。 521 :細菌:03/02/03 19 31 ID ??? 次は、ほとんど活躍しないゴミファイルを削除します。 WINNT\Driver Cacheフォルダの中身 WINNT\SESTEM32\dllcacheフォルダの中身 これら全てを削除します。 アナログモデムを使わない人は WINNT\infフォルダをmdm*.*で検索、削除。 その他不要なドライバ定義ファイルが分かる人は他も削除します 頼りにならないウィンドウズヘルプも消します。WINNT\HELPの中身 効果音も要りません。 WINNT\Media この時点でC:の消費は420Mbyteくらいになっているはずです。 私はこの後、mailストーム型のブラクラ対策の為に、 Outlook Expressのアンインストール、レジストリからmailtoの定義を削除 その他WINDOWS標準の邪魔なアプリケーションを削除したところ、 412Mbyteになったと記憶しています。 他に、要らないフォント、MSIEMの削除などで50~60Mbyteは削れると思います。 518のスレも参考になりますが、アドレスが変更になっています。 http //pc2.2ch.net/test/read.cgi/win/1036507668/ 522 :細菌:03/02/03 19 37 ID ??? CFにOSをインストロールした人は、CFへの書き込みを極力減らしたいところですね。 そこで、RAMディスクをコキ使いましょう。 RAMディスクに10Mbyte以上割り振れる人 インターネットテンポラリファイルをRAMディスクへ移動 別にいい人はクッキーと履歴もRAMディスクへ移動 (利点)画像の多いページ等を閲覧してもCFの劣化が無い。 (欠点)再起動すると履歴などが消える RAMディスクに100Mbyte以上割り振れる人 システムのページングファイルをRAMディスクへ移動 (利点)邪魔なページングファイルがHDDから消え、windowsが立ち上がった後のHDDアクセスが減る。 (欠点)スキルのある人でないと、トラブル発生時に対処できないかも? RAMディスクに200Mbyte以上割り振れる人 システムテンポラリをRAMディスクへ移動 (利点)圧縮ファイルのクイック解凍機能を多様する人などは多大な恩恵を受けられる。 (欠点)しっかり設定しないとwindows各機能が動かなくなる。 以下にやり方の説明を記します。 524 :細菌:03/02/03 20 11 ID ??? ●インターネットテンポラリの移動 IEのメニューのツールからインターネットオプションを選択 インターネット一時ファイルの設定ボタン-移動でできます。 ●システムテンポラリPathの変更 マイコンピュータ右クリック-プロパティ-詳細-環境変数 ”ユーザーの環境変数”と”システム環境変数”の TEMPとTMPのアドレス(計4つ)をZ:の任意のフォルダに書き換えます。 ※重要説明※ インターネットテンポラリは、設定を変更するだけで、テンポラリ使用時に 自動的にフォルダが作成されますが、システムテンポラリフォルダは作成されません。 システムテンポラリフォルダが存在しないままだと、 コントロールパネルが開けないなどの不具合が生じます。 スタートアップにフォルダを作成するBATを登録する必要があります。 ※重要説明終わり※ 525 :細菌:03/02/03 20 29 ID ??? と、ここまで何も考えずに設定すると、Z:のルートが いろんなフォルダでゴチャゴチャになり、スマートではありません。 RAMディスクに追い出したものはひとつのフォルダに纏めましょう。 私は ##SYSTEM というフォルダに纏めています。 インターネットテンポラリは Z \##system\Temporary Internet Files Z \##system\Cookies Z \##system\History のPathに変更 システムテンポラリは TEMPとTMPのアドレス(計4つ)を全てを Z \##system\Temp のPathに変更 (起動時に MD Z \##system\Temp というBATを実行するようにしてあります。) pagefile.sysはドライブのルート以外に置く方法が分かりませんでした。 526 :細菌:03/02/03 20 34 ID ??? インターネットテンポラリ、特にクッキーや履歴などの変更は 直接レジストリ弄らなければならず、面倒です。 そこで、 Z \##system\Temporary Internet Files Z \##system\Cookies Z \##system\History に書き換えるためのregファイルを作ると楽です。 これは、うちの環境のレジストリを書き出したものですが、 他のPC4台にWIN2000クリーンインストール後、このレジストリを追加しても ちゃんと正常に動作しているので、問題はないと思います。 ちなみにIEのVerUPなどはしていない状態での書き出しなので、 IEVer5以外での動作などについては知りません。 527 :細菌:03/02/03 20 35 ID ??? Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] "Cache"="Z \\##system\\Temporary Internet Files" "History"="Z \\##system\\History" "Cookies"="Z \\##system\\Cookies" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] "Cache"=hex(2) 5a,00,3a,00,5c,00,23,00,23,00,73,00,79,00,73,00,74,00,65,00,6d,\ 00,5c,00,54,00,65,00,6d,00,70,00,6f,00,72,00,61,00,72,00,79,00,20,00,49,00,\ 6e,00,74,00,65,00,72,00,6e,00,65,00,74,00,20,00,46,00,69,00,6c,00,65,00,73,\ 00,00,00 "Cookies"=hex(2) 5a,00,3a,00,5c,00,23,00,23,00,73,00,79,00,73,00,74,00,65,00,\ 6d,00,5c,00,43,00,6f,00,6f,00,6b,00,69,00,65,00,73,00,00,00 History"=hex(2) 5a,00,3a,00,5c,00,23,00,23,00,73,00,79,00,73,00,74,00,65,00,\ 6d,00,5c,00,48,00,69,00,73,00,74,00,6f,00,72,00,79,00,00,00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\SpecialPaths\Cookies] "Directory"=hex(2) 5a,00,3a,00,5c,00,23,00,23,00,73,00,79,00,73,00,74,00,65,00,\ 6d,00,5c,00,43,00,6f,00,6f,00,6b,00,69,00,65,00,73,00,00,00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012002111120021118] "CachePath"="Z \\##system\\History\\History.IE5\\MSHist012002111120021118\\" 528 :細菌:03/02/03 20 46 ID ??? これらの設定変更を全て実行した後、サービスパックやDXなどを入れようとしたが 変なエラーが出てSETUPできないぞ。という方。 一度、SETUPプログラムのアーカイブをどこかに手動で解凍し、 その中のUPDATE.EXEまたはDXSETUP.EXEを直接実行してください。 又は、システムテンポラリの設定を変更する前にSETUPを実行してください。 529 :細菌:03/02/03 21 02 ID ??? ついでなので、WIN2000チューニングの事についても纏めておきます。 スレ違い気味なので、必要の無い人は読み飛ばしてください。 Windows Registry Editor Version 5.00 管理共有やめれ [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] "AutoShareWks"=dword 00000000 カーネルを全て物理メモリにロード [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "DisablePagingExecutive"=dword 00000001 入出力のためのメモリサイズを拡張 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "IoPageLockLimit"=dword 00010000 シャットダウン時間の短縮 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control] "WaitToKillServiceTimeout"="1000" ワトソン君ウザイ [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "Auto"="0" 起動時NumLockのON [HKEY_USERS\.DEFAULT\Control Panel\Keyboard] "InitialKeyboardIndicators"="2" 最近使ったファイルの履歴を残すな [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoRecentDocsHistory"=hex 01 530 :細菌:03/02/03 21 04 ID ??? ファイル名を指定して実行 gpedit.msc コンピュータの構成 -管理用テンプレート -システム 自動再生無効 有効 ログオン時のWINDOWSへようこそを無効 有効 -ネットワーク -オフラインファイル 機能の使用を 無効 ユーザー構成を無効 有効 オフラインファイルの同期 無効 サーバー切断時の動作 無効 規定外の動作 無効 531 :細菌:03/02/03 21 05 ID ??? gpedit.msc 続き ユーザー構成 -管理用テンプレート -タスクバー スタートから「最近使ったファイル」削除 有効 スタートから「お気に入り」削除 有効 スタートから「ヘルプ」削除 有効 スタートに「ログオフ」追加 有効 最近使ったファイル履歴保存しない 有効 終了時最近使ったファイル履歴削除 有効 ユーザーの追跡無効 有効 シェル関係 有効 -デスクトップ -Active DeskTop Active DeskTopを無効にする 有効 すべてを無効に 有効 変更を禁止 有効 -ネットワーク -オフラインファイル ユーザー構成を無効 有効 オフラインファイルの同期 無効 サーバー切断時の動作 無効 規定外の動作 無効 532 :細菌:03/02/03 21 27 ID ??? これで小さいWIN2000ができました。 512MbyteCFにも余裕で入ると思います。 OS起動後のCFへのアクセスも恐ろしく少ないと思います。 ただ、私はまだ大容量CFを持っていません。 なので、HDDからCFではなく、HDDへのWIN2000移し変え方法を説明します。 1・まず、目的のPCに、WIN2000をインストールできるくらいの容量のHDDを繋ぎ、 普通にWIN2000をインストールします。 2・次に、WIN2000起動ディスクを作ります。 WIN2000のCDの BOOTDISK\MAKEBOOT.EXE を実行してください。 3・もうひとつのHDDをフォーマットします。 マイコンピュータ右クリ-管理-ディスクの管理 で、フォーマット後、 そのパーティションをアクティブにしてください。 4・WIN2000インストール済みのHDDの中全てを フォーマット済みHDDへコピーします。 5・コピーされたHDDを目的のHDDに繋ぎ、作ってあった起動ディスクで起動、 修復セットアップの回復コンソールを実行します。 6・FIXMBRとFIXBOOTを実行してください。 7・回復コンソールを抜け再起動すると、スリムWIN2000が起動すると思います。 なお、お約束ながら、全て自己責任でお願いします。 終わり 次のページへ
https://w.atwiki.jp/futoyama/pages/23.html
ファイルパスからファイル名だけを取り出す 日付時刻の整形出力 不要なファイルを除いてtarコマンドでアーカイブする 定期的にコマンドを実行する 指定時間入力がなかったらターミナルを終了する。 乱数を使う マウントせずにISOイメージ内を見る awkを使って指定ファイルの合計サイズを求める バックグラウンドとフォアグラウンド nopコマンド 文字列を16進文字コードで出力 連続した数を得る 複数のコマンドの組み合わせ(リスト) コメント行と空行をのぞいて出力する。 TCPまたはUDPで通信 ファイルパスからファイル名だけを取り出す $ basename /home/test/package/test.sh test.sh 日付時刻の整形出力 $ date +"%Y-%m-%d %H %M %S" 2012-01-14 17 45 55 ずっとdateコマンドでは秒より小さい値を表示できないとおもっていた。dateコマンドのhelpを見ると、「%N」でナノ秒が表示できることがわかった。 $ date +"%Y-%m-%d %H %M %S.%N" 2012-02-28 23 28 41.856765220 不要なファイルを除いてtarコマンドでアーカイブする tarでディレクトリ配下をまとめてアーカイブする際に、特定のファイル/ディレクトリを除いてアーカイブするには以下のようにする。 tar zcvf filename.tar.gz ./dirname --exclude ".svn" ライブラリ管理にSubversionを使っているが、チェックアウト時に.svnというディレクトリが作れてしまい、チェックアウトしたファイルだけをtarでアーカイブしたいのに、この.svnまでアーカイブされて困っていた。上記のように --exclude オプションの後に除外したいファイル名(.svn)を書くと、該当のファイルやディレクトリを除外してくれる。 複数のファイル名を除外したい場合は、以下のように --exclude を複数書くか 「--exclude-from 除外ファイル名リストファイル」を使うとできます。 tar zcvf filename.tar.gz ./dirname --exclude ".svn" --exclude "test" または tar zcvf filename.tar.gz ./dirname --exclude-from exclude-list-file exclude-list-file内は、除外するファイル名を改行して書きならべる 定期的にコマンドを実行する watchコマンドが使える。 watchは指定されたコマンドを繰り返し実行しその出力を表示する。ただし一画面に収まるまでしか表示しないので注意が必要。 デフォルトは2 秒毎に実行するが、-n 秒 または --interval= 秒 で間隔を変更可能。 -dを付けると、変化部分をハイライト表示してくれる。 60秒毎にls -lする。 watch -n 60 ls -l 指定時間入力がなかったらターミナルを終了する。 環境変数TMOUTを設定すればよい。 sshでリモートでターミナルを操作するような場合に設定しておくと、うっかりログアウトし忘れても自動的にログオフするので便利かも。 300秒入力がなければターミナルを終了する。 export TMOUT=300 乱数を使う bash専用だが、RANDOMという、毎回0〜32767 までのランダムな整数を返すシェル変数がある。 $ echo $RANDOM 4158 X〜(Y-1)の範囲の乱数が必要な場合は、 $RANDOM % (Y-X) + X で生成できます。例えば100〜200の $ echo $(( $RANDOM % 101 + 100 )) 195 shでも使える乱数としては、/dev/random、/dev/urandomがあります。 以下のサイトが参考になります。 http //www.cyberciti.biz/faq/bash-shell-script-generating-random-numbers/ マウントせずにISOイメージ内を見る $ isoinfo -l -i pclinuxos-2009.1-jp.iso <ーー -l により、 ls -lR の出力結果が見える。 awkを使って指定ファイルの合計サイズを求める $ ls -l /var/log/syslog.* | awk {i+=$5}END{print i} 692654 $ ls -l /var/log/syslog.* -rw-r----- 1 syslog adm 355144 2010-06-26 08 54 /var/log/syslog.1 -rw-r----- 1 syslog adm 21054 2010-06-25 01 01 /var/log/syslog.2.gz -rw-r----- 1 syslog adm 21030 2010-06-23 20 05 /var/log/syslog.3.gz -rw-r----- 1 syslog adm 39582 2010-06-22 23 51 /var/log/syslog.4.gz -rw-r----- 1 syslog adm 116482 2010-06-21 23 26 /var/log/syslog.5.gz -rw-r----- 1 syslog adm 79329 2010-06-20 08 43 /var/log/syslog.6.gz -rw-r----- 1 syslog adm 60033 2010-06-19 09 33 /var/log/syslog.7.gz バックグラウンドとフォアグラウンド ターミナルからコマンドを実行するとフォアグラウンドで実行され、コマンドが終わるまで次のコマンドが実行できない。 逆に、コマンドの最後に をつけて実行すると、バックグラウンドで実行され、コマンド実行中でも別のコマンドを実行できる。 以下のようにすると、バックグランドとフォアグラウンドを切り替えることができる。 $ cat bgfg.sh -- 40秒間sleepして、slep endを表示する。 #!/bin/bash sleep 40 echo "sleep end" $ ./bgfg.sh -- バックグラウンドで起動 [1] 3686 $ jobs [1]+ 実行中 ./bgfg.sh $ fg %1 -- ジョブ1をフォアグラウンドに ./bgfg.sh ^Z -- Ctrl+zでフォアグラウンドのジョブを一旦停止する。 [1]+ 停止 ./bgfg.sh $ bg #1 -- ジョブ1をバックグラウンドに [1]+ ./bgfg.sh $ jobs [1]+ 実行中 ./bgfg.sh $ sleep end --ここで終了 [1]+ 終了 ./bgfg.sh nopコマンド 何も実行したく無い場合は (コロン)を使うとnopコマンド(no operation)となる。 ifの条件式でfalseの場合のみ何か実行したい場合に使うときがある。 例えば、xxxx.txtファイルがない場合だけメッセージを出す場合は以下のようにする。 if [ -f xxxx.txt ];then else echo "xxxx.txt is not found!" fi 文字列を16進文字コードで出力 文字列を16進数の文字コードで出力したい場合、以下のようにすればよい。 echo -n "入力文字列" | od -w100 -tx1 | cut -c9- | sed s/ //g odコマンドで16進ダンプを出力し、そこからcutでオフセット表示を削除し、スペースを詰めるというかなりの力技です。 なお、odの-w100は、入力文字列のダンプ結果を1行で表示したいため、1行あたり100byte分表示させている。もっと長い文字列を扱いたい場合は、ここを大きくすればよい。 連続した数を得る seqコマンドを使う。デフォルトは開始値1、増分値1、セパレータは\n。 $ seq -s " " 5 <ーー終了値のみ 1 2 3 4 5 $ seq -s " " 2 5 <ーー開始値と終了値 2 3 4 5 $ seq -s " " -5 3 6 <ーー開始値、増分値、終了値 -5 -2 1 4 $ fff=100 $ seq -s " " 0 25 $fff <ーー環境変数も使える 0 25 50 75 100 $ seq --format= No.%03g -s " " 0 25 100 <ーーformat指定 No.000 No.025 No.050 No.075 No.100 ※printfのfomatとmanにはあるが、%xや%dなどは使えなかった。 他にも、{開始値..終了値}も使える。増分は1固定の模様。 $ echo {0..5} 0 1 2 3 4 5 $ echo {000..5} <ーー桁数を揃える 000 001 002 003 004 005 よくfor文の中でつかったりするが、touchコマンドと組み合わせると、拡張子を連番にするなどが簡単にできる。 $ touch test.{000..005} $ ls test* test.000 test.001 test.002 test.003 test.004 test.005 複数のコマンドの組み合わせ(リスト) リスト (list) とは、1つ以上のパイプラインを演算子 ;, , , || のいずれかで区切って並べたもの。 command1 ; command2 command1の実行完了後にcommand22を実行 command1 || command2 command1が0以外の終了ステータスで終了した場合に限り command2 を実行 command1 command2 command1が0の終了ステータスで終了した場合に限りcommand2を実行 コメント行と空行をのぞいて出力する。 先頭が#あるいは、スペースまたはタブが続いて#がくる行と、先頭から行末までに何もないかスペースまたはタブが続く行をのぞいて出力する。以下のどちらかを使えばよい。 egrep -v ^[[ space ]]*# $1 | egrep -v ^[[ space ]]*$ sed /^[ \t]*#/d ipsec.conf | sed /^[ \t]*$/d なお、以下ではうまくいかなかった。 egrep -v ^[ \t]*# $1 | egrep -v ^[ \t]*$ TCPまたはUDPで通信 以下の書式で/dev/tcp、/dev/udpにデータを与えると、TCPまたはUDPで通信ができる。 1.TCP /dev/tcp/ホスト名/ポート番号 2.UDP /dev/udp/ホスト名/ポート番号 例 $ echo "test data" /dev/tcp/localhost/8000 名前 コメント
https://w.atwiki.jp/it_certification/pages/238.html
進捗確認正答率 チェック 所感1週目 2011/09/19 2週目 2011/09/24 3週目 2011/11/19 誤植 および 問題文補足12.3 Syslog Logging 12.12 Telnet Service Options 12.19 SNMPv3 12.20 SNMP MAC Address Notifications 12.25 HTTP Server and Client 12.26 FTP Server and Client 12.28 Remote Shell 12.29 NTP 12.30 NTP Authentication 12.31 NTP Access Control 12.33 Auto-Install over Frame-Relay 12.34 Auto-Install over LAN Interfaces using RARP 12.38 EEM Scripting Interface Events 12.42 EEM Scripting Advanced Features Tips12.11 Conditional Debugging 12.19 SNMPv3 12.29 NTP 12.30 NTP Authentication 12.31 NTP Access Control 12.32 Auto-Install over LAN Interfaces using DHCP 12.33 Auto-Install over Frame-Relay 12.38 EEM Scripting Interface Events 進捗確認 正答率 チェック 2週目 3週目 4週目 5週目 12.1 Exec Aliases 12.2 System Message Logging 12.3 Syslog Logging 12.4 Logging Couting and Timestamps 12.5 Logging to Flash Memory x 12.6 Configure Change Notification and Logging 12.7 Configure Archive Rollback 12.8 Logging with Access-Lists 12.9 TCP Keepalives 12.10 Generating Excepion Core Dumps x 12.11 Conditional Debugging 12.12 Telnet Service Option 12.13 Tuning Packet Buffers 12.14 Terminal Line Setings 12.15 SNMPv2c Server 12.16 SNMPv2c Access Control 12.17 SNMP Traps and Informs 12.18 CPU and Memory Thresholds x 12.19 SNMPv3 x 12.20 SNMP MAC Address Notifications x 12.21 SNMP Notifications of Syslog Messages x 12.22 CDP 12.23 RMON Alarms 12.24 RMON Statistics Collection 12.25 HTTP Server and Client 12.26 FTP Server and Client 12.27 TFTP Server and Client 12.28 Remote Shell x 12.29 NTP 12.30 NTP Authenication 12.31 NTP Access Control x 12.32 Auto-Install over LAN Interfaces using DHCP 12.33 Auto-Install over Frame-Relay 12.34 Auto-Install over LAN Interfaces using RARP 12.35 IOS Menus 12.36 IOS Banners 12.37 KRON Command Schedule 12.38 EEM Scripting Interface Events 12.39 EEM Scripting Syslog Events 12.40 EEM Scripting CLI Events 12.41 EEM Scripting Periodic Scheduling 12.42 EEM Scripting Advanced Feature x 正答率 92% 85% 所感 1週目 2011/09/19 12.1 - 42 非常に覚えなければならない事の多い章です。そのため、記憶漏れが散見されます。思い出せなかったコマンドをまとめると以下の通りです。 subject mode command description 12.2 config logging monitor log_level line vtyへ接続したユーザに見せるログレベルを定義します。 12.6 log config logging enable archive log機能にて、runnning-configの差分保存を有効かします 12.10 config exception memory fragment byte reboot 連続したメモリ空間が閾値を下回った場合、dumpを出力し再起動します 12.10 config exception memory minimum byte reboot メモリの空き容量が閾値を下回った場合、dumpを出力し再起動します 12.11 exec debug condition condition デバッグ出力の条件を指定する事ができます 12.12 config busy-message host message 指定したホストに接続できなかった時に出力するメッセージを定義します 12.13 if buffers tune automatic packet buffer sizeを自動的にチューニングします。 12.14 line ip netmask-format hexadecimal netmaskを16進数で表示します 12.15 config snmp-server tftp-server-list acl configファイルの送受信が可能なTFTP serverを限定します 12.17 config snmp-server enable cpu threshold CPUが設定した閾値を下回った場合、trapを送信します 12.18 config process cpu threshold type total rising val interval sec 上記trap設定コマンドと併用し、CPU使用率の閾値を定義します。 12.18 config memory free low-water processor byte メモリの空き容量が閾値を下回った場合、trapを送信します。 12.18 config memory reserve critical byte reserve memoryが閾値を下回った場合、trapを送信します。 12.20 config mac address-table notification change MACアドレスの変更通知を有効化します。 12.20 config mac address-table notification change history-size size MACアドレスの変更通知の保存件数を定義します。 12.20 config mac address-table notification change interval count_per_sec MACアドレスの変更通知の頻度を定義します。 12.21 config logging history level snmp trapでログを送付する際のログレベルを定義します。デフォルトは、warning以上です。 12.21 config logging history size size snmp trapでログを送付する際のbuffer sizeを定義します。 12.35 exec menu-exit IOSメニューを終了します 12.36 config banner incoming access serverからのreverse telnetによる接続を受けた際に表示するメッセージを定義します 12.36 line no motd-banner motd-bannerを非表示にします 12.36 line no exec-banner exec-bannerを非表示にします 12.16 下記コマンドの意味が、未だ理解できていません。具体的にどのようなOIDが取得可能になるのか、snmpwalkコマンドにより調べてみたいと思います。 snmp-server view ROVIEW cisco included 12.19 SNMPv3 userはrunning-configに反映されない事を知らなかったので、設定が反映されていなものと勘違いしてしまいました。 12.24 以下のように引数を誤って設定してしまいました。ヘルプメッセージを注意して見れば、誤りに気づけたはずです。 rmon collection history 100 interval 30 rmon collection history 1 buckets 100 interval 30 12.24 native mode, promiscuous modeの違いを思い出せず、調べてしまいました。RMON statistics collectionについては、"IOS 12.2T Configuration Fundamentals Command Reference"で調べる事ができます。 http //www.cisco.com/en/US/docs/ios/12_2t/fun/command/reference/122tfr.html 12.25 DES symmetric cipherが以下のどの規格を指しているのかが理解できませんでした。symmetric cipherは日本語で"共有鍵", asymmetric cipherは日本語で"秘密鍵, 公開鍵"です。私は初見で3DESを選び、模範解答はDESでした。3DESで間違いとは言い切れませんが、問題文で"DES symmetric cipher"と言っているので、素直にdes-cbc-shaを選びましょう。 Rack18R6(config)#ip http secure-ciphersuite ? 3des-ede-cbc-sha Encryption type ssl_rsa_with_3des_ede_cbc_sha ciphersuite des-cbc-sha Encryption type ssl_rsa_with_des_cbc_sha ciphersuite rc4-128-md5 Encryption type ssl_rsa_with_rc4_128_md5 ciphersuite rc4-128-sha Encryption type ssl_rsa_with_rc4_128_sha ciphersuite Rack18R6(config)#ip http secure-ciphersuite 12.30 以下のコマンドの投入を忘れてしまいました。 ntp authenticate ntp trust-key 12.40 環境変数$_exit_statusを忘れてしまいました。オンラインドキュメントのかなり分かりづらい位置に載っていたので、ある程度、環境変数は暗記せざるを得ないと感じました。 12.42 環境変数$_regexp_resultを忘れてしまいました。オンラインドキュメントから探し出す事が出来なかった(私の探し方が悪い可能性が濃厚ですが)ので、ある程度、環境変数は暗記せざるを得ないと感じました。 2週目 2011/09/24 12.5 log level, log sizeの指定方法を誤って覚えていた事が発覚しました。 12.21 syslogをtrapで送信する際のコマンドは"logging history"です。以下の通り、ヘルプメッセージから探し出すのは限りなく不可能に近い(どう見てもコメントバグにしか見えない)ので、暗記が必要です。 Rack8R1(config)#logging ? Hostname or A.B.C.D IP address of the logging host buffered Set buffered logging parameters buginf Enable buginf logging for debugging cns-events Set CNS Event logging level console Set console logging parameters count Count every log message and timestamp last occurrence esm Set ESM filter restrictions exception Limit size of exception flush output facility Facility parameter for syslog messages filter Specify logging filter history Configure syslog history table host Set syslog server IP address and parameters 3週目 2011/11/19 12.10 "reboot"指定が漏れてしまいました。 12.18 snmp-server enable traps cpuを忘れてしまいました。snmp trap有効化の設定は本問に限らず忘れがちになるので、注意が必要です。 12.19 auth, noauth, privのそれぞれの意味を忘れてしまいました。 12.20 全く覚えていませんでした。 12.31 peer, serve-onlyなどの権限指定の仕様を忘れてしまいました。 12.42 $_info_interface_namesなどの環境変数を忘れてしまいました。オンラインドキュメントには載っていないので暗記が必要です。 誤植 および 問題文補足 12.3 Syslog Logging INE模範解答の以下部分は不要です。後の問題の答えが紛れ込んでしまったのではないかと推測できます。 R6 logging queue-limit trap 256 logging origin-id string ROUTER6 logging facility local1 logging trap notifications logging source-interface Loopback0 logging host 155.1.146.100 12.12 Telnet Service Options ToS値の設定に誤りがありますので、以下の通り訂正します。 R3 service telnet-zeroidle ip telnet source-interface Loopback0 ip telnet tos 60 96 ip telnet quiet ip telnet hidden address ! no ip domain-loopup ip host R4 155.1.146.4 ! busy-message R4 # Sorry, your connection failed # 12.19 SNMPv3 Serial InterfaceのIfindexは適宜変更する必要があります。なお、Ifindexは以下のコマンドで調べる事ができます。 Rack8R6#show snmp mib ifmib ifindex Virtual-Access2 Ifindex = 10 Serial0/0/0 Ifindex = 3 FastEthernet0/0.146 Ifindex = 19 Loopback602 Ifindex = 14 Virtual-Access2.1 Ifindex = 17 FastEthernet0/0.67 Ifindex = 18 FastEthernet0/1 Ifindex = 2 Loopback0 Ifindex = 12 Null0 Ifindex = 5 Virtual-Access1 Ifindex = 8 Virtual-Access3 Ifindex = 11 FastEthernet0/0-mpls layer Ifindex = 16 Virtual-Template1 Ifindex = 7 Loopback601 Ifindex = 13 Virtual-Template11 Ifindex = 9 Loopback603 Ifindex = 15 Async0/0/0 Ifindex = 6 SSLVPN-VIF0 Ifindex = 4 FastEthernet0/0 Ifindex = 1 Rack8R6# 12.20 SNMP MAC Address Notifications 現在投入できる設定は、INE模範解答と若干コマンドが異なります。変更が必要な部分を赤字で記載します。 notificationの送信頻度については、赤字部分を2から1に変更します。また、NMS stationの設定が漏れていますので、赤字部分を加筆します。 interface FastEthernet0/1 snmp trap mac-notification change added snmp trap mac-notification change removed ! interface FastEthernet0/5 snmp trap mac-notification change added snmp trap mac-notification change removed ! snmp-server enable traps mac-notification change snmp-server host 155.8.146.100 CISCO ! mac address-table notification change mac address-table notification change interval 2 1 mac address-table notification change history-size 100 12.25 HTTP Server and Client HTTP用ユーザには、privilege 15を与えないと通信ができません。解答を以下の通り変更します。 R6 username CISCO privilege 15 password CISCO omitted 12.26 FTP Server and Client R6はFTP Server機能を備えていないので、問題文を以下の通り変更します。 Configure the FTP Server on R6 R1 to server IOS images off of flash. R4 should initiate an FTP session to R6 R1 with the username/password CISCO/CISCO. When a transfer occurs R6 R1 should initiate the FTP date channel back to the client. Source FTP connections off R4 Loopback interface. FTP Server機能に関してはクラッシュするバグを含んでいるため、最近のIOSではFTP Server機能が削除されつつある傾向にあります。但し、FTP Client機能に関してはCore dumpを転送する際に使用する事があるため、依然残り続けると思われます。 12.28 Remote Shell 題意が読者に伝わりづらいので、問題文を加筆すると以下の通りです。 Configure the network so that R1 is to view the running configuration of R6 using remote shell Source remote-shell connections off the Loopback0 interface of R1. Allow the user named RCP file-copy from R6 to R1 12.29 NTP INEレンタルラボでは、NTPの動作に多数の不具合が見られます。INE Online Community上でも多数の不具合が報告されていますし、私自身も以下の不具合を見つけました。 R4, R6(Cisco1841 12.4(13r)T)では、NTP master同士で同期できない。 R6(Cisco1841 12.4(13r)T)から送信されるmulticast NTP packetがルーティングできない。 SW1(Cat3560 12.2(25r)SEC)ではmulticast NTP packetの認証設定が機能しない このような不具合を回避するために、NTPの設定対象を以下の通り変更します。 Configure R4 and R6 R1 and R3 as authoritative NTP time source with stratum 5. Both R4 and R6 R1 and R3 should synchronize with each other. R5 SW2 should poll R4 and R6 R1 and R3 for time updates, but prefer R4 R1. Configure R5 R3 to broadcast NTP update on its connection to VLAN 58 R2, and for SW2 R2 to listen to NTP broadcast on this link. Configure R6 R3 to send multicast NTP packets to the address 239.1.1.1 on its connection to VLAN 67 VLAN 37. SW1 and SW3 should be able to synchronize with R6 R3 using these multicast packets. 解答は、"12.31 NTP Access Control"でまとめて掲載します。 12.30 NTP Authentication 問題文を以下の通り変更します。 Configure R4 and R6 R1 and R3 to authenticate each others peering session using the key "CISCO46" "CISCO13" R5 SW2 should authenticate NTP packets recieved from R4 and R6 R1 and R3 using key values "CISCO4" and "CISCO6" "CISCO1" and "CISCO3" respectively SW2 R2 should only accept NTP update on VLAN 58 serial link if they are authenticated using key value of "CISCO58" "CISCO23" 解答は、"12.31 NTP Access Control"でまとめて掲載します。 12.31 NTP Access Control 問題文を以下の通り変更します。 Configure R4 and R6 R1 and R3 so that no other devices can update their clocks. R5 SW2 should only allow R4 and R6 R1 and R3 to update its clock. R4 and R6 R1 and R3 should not serve time out to other devices besides R5 SW2. SW2 R2 should only accept time from R5 R3 and not other source, but R5 should be allowd to serve time out to other devices. 上記NTPに関する3問の設定は以下の通りです。INE模範解答では、赤字部分のmulticastを送信する設定が漏れている事に注意して下さい。 R1 access-list 3 permit 127.127.7.1 access-list 3 permit 150.18.3.3 access-list 8 permit 150.18.8.8 ! ntp authentication-key 1 md5 CISCO1 ntp authentication-key 13 md5 CISCO13 ntp authenticate ntp trusted-key 13 ntp source Loopback0 ntp access-group peer 3 ntp access-group serve-only 8 ntp master 5 ntp peer 150.18.3.3 key 13 R2 interface Serial0/1 ntp broadcast client ! access-list 23 permit host 155.18.23.3 ! ntp authentication-key 23 md5 CISCO23 ntp authenticate ntp trusted-key 23 ntp access-group peer 23 R3 interface FastEthernet0/0 ntp multicast 239.1.1.1 ! interface Serial1/3 ntp broadcast key 23 ! access-list 1 permit 127.127.7.1 access-list 1 permit 150.18.1.1 access-list 8 permit 150.18.8.8 ! ntp authentication-key 3 md5 CISCO3 ntp authentication-key 13 md5 CISCO13 ntp authentication-key 23 md5 CISCO23 ntp authenticate ntp trusted-key 13 ntp source Loopback0 ntp access-group peer 1 ntp access-group serve-only 8 ntp master 5 ntp peer 150.18.1.1 key 13 SW1 ip multicast-routing distributed ! interface FastEthernet0/3 ip pim dense-mode ntp multicast client 239.1.1.1 ! interface Vlan79 ip pim dense-mode SW2 access-list 13 permit 150.18.1.1 access-list 13 permit 150.18.3.3 ! ntp authentication-key 1 md5 CISCO1 ntp authentication-key 3 md5 CISCO3 ntp authenticate ntp trusted-key 1 ntp trusted-key 3 ntp source Loopback0 ntp access-group peer 13 ntp server 150.18.3.3 key 3 ntp server 150.18.1.1 key 1 prefer SW3 ip multicast-routing ! interface Vlan79 ip pim dense-mode ntp multicast client 239.1.1.1 12.33 Auto-Install over Frame-Relay INEレンタル環境内では、network-confgファイルが存在しません。ファイルによる名前解決ができませんので、DNSによる名前解決を行うよう、問題文を変更します。 Disable R1 s linkt to VLAN 146. Configure R5 as a staging router for AutoInstall over Frame-Relay for R4 as follows R5 should assign the IP address 155.X.0.4. When R5 receives a TFTP request from R4 for the file "network-confg" it should be forwarded to SW2. R4 should download this config from SW2 and learn its hostname RackXR4. R5 should reply DNS request from R4 and R4 learn its hostname RackXR4. R4 should then download the config file "RackXR4-confg" from SW2. 解答は以下の通り変わります。 R1 interface FastEthernet 0/0 shutdown R5 interface Serial 0/0/0 ip helper-address 155.X.58.8 ! ip host RackXR4 155.X.0.4 ip dns server SW2 tftp-server flash rackXr4-confg tftp-server flash network-confg 12.34 Auto-Install over LAN Interfaces using RARP network-confgが存在しませんので、この問題は動作確認不可能です。 Frame-Relay経由でnetwork-confgが取得できない場合は、255.255.255.255宛てにdns queryを送信し自ホスト名の逆引きを試みます。しかし、ethernet経由でnetwork-confgが取得できない場合、dns queryは送信されません。"DNSサーバを設ける"等、多少問題文を変更しても、動作確認をする事はできません。 12.38 EEM Scripting Interface Events EEMにより定義されたactionが失敗した場合は、次のactionが実施されません。従って、問題文通りの要件で実装すると、メール送信で失敗するのは確実なので、ACL適用の動作確認ができません。 問題文を以下の通り変更します。 Create an EEM applet int R5 that send an email message to noc@INE.com from r5@INE.com once the Frame-Relay interface receive load exceeds 50% of interface bandwith. Use the SMTP server at the IP address 155.X.146.100. After this Before sending the email, apply the access-list CRITICAL_ONLY ingress onR5 s connection to the Frame-Relay interface. The access-list should be pre-configured and permit just the HTTP and DNS traffic responses. The interface bandwidth is 64Kbps. INE模範解答は、ACL適用後にメール送信しているので変更不要です。 12.42 EEM Scripting Advanced Features 問題文の1文目と2文目が矛盾していて、出題意図がかなり読み取りづらい文章になっています。そこで、問題文を以下の通り改めたいと思います。 Create an EEM applet in R5 that clears all Serial/Fasternet interface counters every 3 minute. Ensure that the Serial Serial0/0/0 interface couters are never cleared though. Account for any interfaces added to the router in the future. Cisco流の正規表現で、"Fa|Se"はFastEthernet, Serialにマッチしません。もしも、マッチさせたいならば、"(Fa|Se)"と記載します。さらに、デバッグしやすいように標準出力を加筆すると解答例は以下のようになります。 R5 event manager applet CLEAR_COUNTER event timer watchdog time 180 action 0.9 puts [INFO] applet start action 1.0 cli command en action 2.0 info type interface-names regexp Fa|Se (Fa|Se) action 2.1 puts [INFO] interface_list $_info_interface_names action 3.0 foreach _iface $_info_interface_names action 3.1 regexp Serial0/0/0 $_iface action 3.20 if 1 eq $_regexp_result action 3.21 puts [INFO] skip $_iface action 3.22 continue action 3.29 end action 3.3 puts [INFO] clear $_iface action 3.4 cli command clear counter $_iface pattern [confirm] action 3.5 cli command y action 3.9 end exit Tips 12.11 Conditional Debugging 初期設定の状態ではRIPが動作していないので、RIPの設定を投入します。 R1, R6, SW1 router rip version 2 network 150.15.0.0 network 155.15.0.0 no auto-summary RIP updateについて、f0/0.146が受信したものが含まれていない事を確認します。 R6 Rack15R6#show logging | include update Sep 13 22 00 08.051 RIP sending v2 flash update to 224.0.0.9 via FastEthernet0/0.67 (155.15.67.6) Sep 13 22 00 08.051 RIP build flash update entries Sep 13 22 00 17.343 RIP sending update with long TTL Sep 13 22 00 17.343 RIP sending v2 update to 155.15.67.7 via FastEthernet0/0.67 (155.15.67.6) Sep 13 22 00 17.343 RIP build update entries Sep 13 22 00 19.347 RIP received v2 update from 155.15.67.7 on FastEthernet0/0.67 Sep 13 22 00 32.283 RIP sending v2 update to 224.0.0.9 via FastEthernet0/0.67 (155.15.67.6) Sep 13 22 00 32.283 RIP build update entries Sep 13 22 00 45.815 RIP received v2 update from 155.15.67.7 on FastEthernet0/0.67 Sep 13 22 00 56.051 RIP sending v2 flash update to 224.0.0.9 via FastEthernet0/0.67 (155.15.67.6) Sep 13 22 00 56.051 RIP build flash update entries Sep 13 22 00 59.875 RIP sending v2 update to 224.0.0.9 via FastEthernet0/0.67 (155.15.67.6) Sep 13 22 00 59.875 RIP build update entries Rack15R6# 12.19 SNMPv3 snmp-server userはrunnnig-configに反映されません。確認するためには、show snmp userコマンドを実行する必要があります。 R6 Rack17R6#snmp-server user NORMAL NORMAL v3 auth sha CISCO priv des CISCO Rack17R6# Rack17R6#show running-config | include snmp-server user Rack17R6#show snmp user User name NORMAL Engine ID 800000090300001A6D145ED2 storage-type nonvolatile active Authentication Protocol SHA Privacy Protocol DES Group-name NORMAL Rack17R6# 12.29 NTP 設定確認は以下の通りです。時刻同期されている事を意味する"*"マークが付与されている事を確認します。 Rack18SW2#show ntp associations address ref clock st when poll reach delay offset disp +~150.18.3.3 127.127.7.1 5 14 64 363 91.4 348.79 200.8 *~150.18.1.1 127.127.7.1 5 20 64 361 281.4 352.76 1060.0 * master (synced), # master (unsynced), + selected, - candidate, ~ configured Rack18SW2# 12.30 NTP Authentication 認証に成功しているかどうかは以下の要領で確認します。sane, validと表示されている事を確認して下さい。 Rack18SW2#show ntp associations detail | include auth 150.18.3.3 configured, authenticated, selected, sane, valid, stratum 5 150.18.1.1 configured, authenticated, our_master, sane, valid, stratum 5 Rack18SW2# 12.31 NTP Access Control NTPのアクセス制御コマンドは以下の通りです。 Router(config)# ntp access-group { query-only | serve-only | serve | peer } acl option 制御クエリ 時刻要求 時刻の同期 query-only ○ × × serve-only × ○ × serve ○ ○ × peer ○ ○ ○ 12.32 Auto-Install over LAN Interfaces using DHCP Auto-Installの処理順序は以下の通りです。Auto-Installがうまくいかない時は、debug ip packetを実行し、どの処理までうまくいっているかを確認する事で切り分けを実施します。 1. ルータは、起動時に全 ethernet I/FからDHCPリクエスト(宛先 255.255.255.255)を送信し、以下情報の取得を試みます。 ip address default router dns server tftp server boot file 2. ルータは、上記のDHCPリクエストと同時にBOOTPも送信し、以下情報の取得を試みます。 sname (tftp server name) siaddr (ip address) file (boot file) 3. ルータは、boot fileが格納されたTFTPサーバがどこにあるかを探します。DHCPによるtftp server通知方法は、tftp serverのホスト名を記載したDHCP option 66と、tftp serverのIPアドレスを記載したDHCP option 150があります。 DHCP option 66 - tftp serverのホスト名に対応したIPアドレスをDNSサーバに問い合わせます。 DHCP option 150 - option 150に記載されたIPアドレスをそのまま使用します。 BOOTP file - tftp serverのホスト名に対応したIPアドレスをDNSサーバに問い合わせます。 4. ルータは、以下の順でtftp serverからファイルダウンロードを試みます。 DHCP, BOOTPで指定されたファイル (この処理に成功した場合はAuto-Install終了です。処理5は実施しません) network-confg (configでない事に注意) cisconet.cfg 5. network-confg, cisconet.cfg, DNSサーバの順で、ルータの自IPアドレスに対応するホスト名の解決を試みます。ホスト名が解決できたら、以下ホスト名に対応するconfigファイルをtftp serverからダウンロードしようとします。 hostname-confg hostname.cfg Auto-Installを実施するDHCPサーバの設定例は以下の通りです。(DNSサーバ, TFTPサーバの設定に関しては省略します) ip dhcp pool pool host address mask client-identifier identifier default-router gateway_address dns-server dns_address option 66 ascii tftp_server_name 12.33 Auto-Install over Frame-Relay ルータは、ethernet I/FによるAuto-Installができない場合は、Serial I/FによるAuto-Installを試みます。Serial I/FによるAuto-Installの処理順序は以下の通りです。 1. HDLCでカプセル化されたSLARP requestを送信し、IPアドレスの取得を試みます。 2. SLARPによるアドレス取得に失敗した場合は、frame relayでカプセル化されたbootp requestを送信します。bootp requestを受信したルータ(オンラインドキュメント上では、staging routerと呼ばれます)は、frame relay mapに基づきIPアドレスを割り当てます。 3. tftp server(宛先255.255.255.255)から、network-confg, cisconet.cfgのダウンロードを試みます。 4. network-confg, cisconet.cfg, DNSサーバ(宛先255.255.255.255)の順で、ルータの自IPアドレスに対応するホスト名の解決を試みます。ホスト名が解決できたら、以下ホスト名に対応するconfigファイルをtftp server(宛先255.255.255.255)からダウンロードしようとします。 hostname-confg hostname.cfg 12.38 EEM Scripting Interface Events EEM Scriptingsに関して、環境変数をある程度覚えていないと、設問は解けないと思います。万が一、環境変数を忘れてしまった場合は、"IOS 12.4T feature guides"を参照下さい。 http //www.cisco.com/en/US/docs/ios/12_4t/12_4t2/ht_eem.html#wp1051705 主要な変数についてまとめると以下の通りです。 event variable description all _cli_resutlt 1つ前のコマンドの実行結果が格納されます all _info_interface_names info type interface-namesで合致したI/F名一覧が格納されます all _regexp_result regexp文で正規表現に合致するかどうかが格納されます。合致した場合は1が格納され、合致しない場合は0が格納されます。 CLI event detector _exit_status sync yesを指定した場合、コマンドを実行するかどうかを制御します。1の場合は実行し、0の場合は実行しません。
https://w.atwiki.jp/pspprogram/pages/69.html
開発環境/linux/Ubuntu-9.10/Eclipse Eclipse+CDT+PSPLink+GDBServerによる開発とデバック PSP Forums in JAPANのPSP 用開発ツールを参考にさせて頂きました。 前提として psptoolchain PSPLINK がインストールされているものとします。 Eclipse CDTのインストール Eclipse CDT(C/C++ Development Tooling)のインストール sudo apt-get install Eclipse-cdt 関連パッケージも含めるとかなり大きいので時間がかかります。 …ですが、そのままだとEclipseのバージョンが古すぎてPSPアプリのデバックができないのでEclipse.org から最新版をダウンロードします。 ダウンロードページからEclipse IDE for C/C++ Developers をダウンロードして下さい 日本語化するためにここから最新の日本語化言語パックを手に入れましょう。 (日本語化したくない人やPleiadesを使いたい人は各自それに適して読み進めて下さい) 最新のバージョン(2009年10月9日現在)は eclipse-cpp-galileo-SR1-linux-gtk.tar.gz NLpackja-eclipse-cpp-galileo-SR1-blancofw20091005.zip でした。 インストールすべきEclipseフォルダを作成します。 tar -xvzf eclipse-cpp-galileo-SR1-linux-gtk.tar.gz unzip NLpackja-eclipse-cpp-galileo-SR1-blancofw20091005.zip これでEclipseフォルダができたので、これを旧Eclipseがインストールされている場所にコピーします。 sudo cp -r eclipse /usr/lib/ これで最新のEclipse CDTがインストールされました。 Eclipse CDTの設定 [ウィンドウ]-[設定]を選択 設定画面が開かれるので [C/C++]-[環境]を選び、[選択]ボタンを押して、変数リストから「PATH」を選びます。 環境変数の欄に「PATH」が表示されるので-[編集] 値に /usr/local/pspdev/bin を追加 [OK]-さらに[OK]を押して適用します。 Eclipseでのビルド 英語のままの人は気合で理解してください。 sample/gu/spriteを作成するとします。 spriteをmakeするにはguフォルダ内にあるcommonフォルダが必要なので workspaceフォルダ内にcommonフォルダをコピー [ファイル]-[新規]-[プロジェクト]を選択します。 [C/C++]-[C++ プロジェクト]-[次へ] プロジェクト名 sprite [Makefile プロジェクト]-[空のプロジェクト]-[完了] 左の[C/C++ Projects]タブから [sprite]を選択して右クリック-[インポート] インポート画面が開くので [一般]-[ファイルシステム]を選択し、ソース・ディレクトリーから /usr/local/pspdev/psp/sdk/samples/gu/sprite を選びます。 [sprite]フォルダがその下に表示されるのでチェック (中のファイルが全てチェックされているか確かめる) [終了] spriteプロジェクトにファイルが追加されたのを確認します。 [プロジェクト]-[プロジェクトのビルド] 上手く行っていれば、これでEBOOT.PBPが生成されます Eclipseでのデバッグ デバックシンボルを設定するためにMakefileを変更します。 CFLAGS = -G0 -Wall -O2 を CFLAGS = -g -G0 -Wall -O2 に変更して保存し、Eclipseのメニューで[プロジェクト]-[クリーン]で再ビルドします。 PSPLinkを使用するための準備をします。 cd ~/workspace/sprite/ alias sudo="sudo env PATH=$PATH" sudo usbhostfs_pc 新しい端末を開いて pcterm するとhost0 /と表示されるので debug ./sprite.elf 以下のように表示されれば成功です。 host0 / PSPLink GDBServer (c) 2k6 TyRaNiD/Lovely2 GDBServer Loaded host0 /sprite.elf - UID 0x017DA259 ←環境によって毎回異なる Eclipseでデバックの設定をします。 [実行]-[デバックの構成] [C/C++ Application]を選択 1)左側の[名前]に名前を入力します。 ここでは「PSPDGB」と入力します。 左下の方にある「その他の選択...」-「GDB Remoto System Process ランチャー」を選択します。 2)[メイン]タブの「プロジェクト」に「sprite」と入力し、 「C/C++ アプリケーション」に「sprite.elf」と入力します。 3)[デバッガー]タブの「デバッガー」ドロップダウンリストから 「gdbserver デバッガー」を選択します。 「始動で停止」の左側のチェックボックスをチェックします。 「Debugger Options」の「Main」タブのところで 「GDB デバッガー 」に /usr/local/pspdev/bin/psp-gdb と入力します。 この際「GDB コマンド・ファイル 」の「.gdbinit」を削除してください。 同じく「デバッガー・オプション」の「接続」タブのところで 「型」ドロップダウンリスト:「TCP」を選択 「ホスト名またはIPアドレス」 「localhost」と入力されているのを確認してください。 「ポート番号」 「10001」に修正してください。 「デバッグ」ダイアログの画面右下の「デバック」をクリックしてデバッグを開始します。 Eclipseがデバッグ画面に切り替われば設定は成功です。 後は自由にプログラミングを楽しんでください。 おまけ PSPSDKのサンプルをいちいちmakeするのが面倒な人用。 sampleフォルダ直下に置いてmakeすると全てのサンプルをがつがつビルドしてくれるはずです。 コピペのときはTAB文字に注意してね。 #下位ディレクトリのMakefileを全てmakeする #仕組み :Makefileのフルパスを取得してディレクトリパスを返す→make -C /hoge/hoge #ex #./gu/blend/Makefile→./gu/blend/→make -C ./gu/blend/ #-mindepth 2 に注意!これが無かったら自分自身を呼び出してmake無限ループ SUBDIRS = $(shell find -mindepth 2 -name Makefile | sed -e "s/Makefile//") all list= $(SUBDIRS) ; for subdir in $$list; do \ $(MAKE) --no-print-directory -C $$subdir || exit 1;\ done clean list= $(SUBDIRS) ; for subdir in $$list; do \ $(MAKE) clean --no-print-directory -C $$subdir || exit 1;\ done
https://w.atwiki.jp/radis/pages/15.html
医用画像を扱うソフトには、OsiriX, ImageJ, MRIcro, NEUROSTAT, まだまだたくさんのフリーソフトがありますが、最初に紹介したいのはMedConです。これもフリーソフトですが、少なくとも私のまわりでは知名度が低い印象があります。しかし知ってみると大変便利です。 何をするソフトか Medical Image Conversion、ファイル変換ソフトです。特にJPEG圧縮DICOMの解凍をするのに便利です。コマンドラインで命令できるので大量ファイル処理にも向いています。 インストール MedCon websiteに行って、左のカラムからDownloadを選択すると、source, package, extraの3つの群が出てきます。ふつうはpackageを選択するのがよいと思います。Windowsであればwin32(2011/6/4現在、xmedcon-0.10.7a-win32.zip)を、UNIX系であればそれらしいのを選べばよいと思います。以下、Windowsに限定して話をすすめます。zipファイルを解凍して、setup.exeを実行します。 インストール後に表示されるreadme.txtで注意すべき点は、command lineで実行したいなら、\bin\ディレクトリにある実行ファイルにパスを通しておくことが必要ということです。絶対パスでいうと、私の環境(WindowsXP)では C \Program Files\XMedCon\bin になりましたが、Windows7ではまた違う名前になりそうです。 パスの通し方はgoogleで検索すれば出てきます。次のどちらかが便利です。 方法1. マイコンピュータを右クリックして、詳細設定のタブで「環境変数」をクリック。変数 path を編集して、上記のパスを加えます。これで完了します。 方法2. DOS窓から path C \Program Files\XMedCon\bin とすれば、そのDOS窓に限ってパスが通ります。なおDOS窓は、スタートメニューのファイル名を指定して実行から「cmd」と入力するか、Vista以降であればフォルダ内でshift押下+右クリックメニューからも行けます。 コマンドラインでの使用 そのパスで、medcon.exe -hを実行すると詳しいヘルプファイルが手に入ります。これを読めば、やりたいことはたいていなんとかなります。しかし、素早く実行するためによく使う機能についてのメモを記しておきます。 もっとも単純な使い方は、ヘッダ内容の確認です。 medcon -f aaaaaa.v この命令は、kaaaaaa.vというファイルを開いて、そのヘッダを表示するものです。 DICOMヘッダも表示できるのでなかなか便利です。 MedConの主な使用目的は、ファイルのコンバートです。 medcon -c dicom -f *.v ワイルドカードで指定した".v"で終わるファイルをすべて、DICOM形式に変換します。 ここで出力されるDICOMファイルは1ボリューム1ファイルの形式なので、私のように1スライス1ファイルに慣れ親しんでいる人には違和感がありますが、そもそも1スライス1ファイルは明らかにredandantであり、今後は1ボリューム1ファイルの形式が普及すると思いますので、これがデフォルトなのは良いことかもしれません。スライス数は、(0054,0081) US[1] NumberOfSlices 63 (2 bytes)のタグに入っています。 それでも、見慣れた1スライス1ファイルにしたい場合は、オプションで指定します。 medcon -c dicom -split3d -f *.v 出力形式には以下のものが選べます。 "ascii" = Raw Ascii (.asc) "bin" = Raw Binary (.bin) "acr" = Acr/Nema (.ima) "anlz" = Analyze (.hdr)+(.img) "conc" = Concorde/uPET (.img.hdr) "dicom" = DICOM (.dcm) "ecat6" = CTI ECAT 6 (.img) "ecat7" = CTI ECAT 7 (.v) "gif" = Gif89a (.gif) "intf" = InterFile (.h33)+(.i33) "inw" = INW (RUG) (.im) "nifti" = NIfTI (.nii) "png" = PNG (.png) pngを選択すると、全スライスがpng形式のモノクロ(黒→白)画像で出力されます。
https://w.atwiki.jp/it_certification/pages/98.html
1. はじめに 2. VLC media playerのインストール 3. DAGについて 4. トラブル対応 1. はじめに Linux版 VLC media playerのインストール手順を記します。 CentOS 5 32bitにインストールする前提で手順を記します。 64bit版の場合やディストリビューションが異なる場合は手順を適宜変更して下さい。 2. VLC media playerのインストール 2.1. 下記、設定ファイルを編集し、DAGリポジトリを追加します。 # vi /etc/yum.repos.d/dag.repo [dag] name=Dag baseurl=http //ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/ enabled=1 gpgcheck=1 gpgkey=http //dag.wieers.com/packages/RPM-GPG-KEY.dag.txt 2.2. VLC media playerをインストールします。 # yum install vlc 2.3. packageをダウンロードするかどうか聞かれますので、「y」と返答します。 Transaction Summary ========================================================================================== Install 50 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size 55 M Is this ok [y/N] 2.4. PGP-KEYをインポートするかどうか聞かれますので、「y」と返答します。 ------------------------------------------------------------------------------------------ Total 354 kB/s | 55 MB 02 40 警告 rpmts_HdrFromFdno ヘッダ V3 DSA signature NOKEY, key ID 6b8d79e6 dag/gpgkey | 1.6 kB 00 00 Importing GPG key 0x6B8D79E6 "Dag Wieers (Dag Apt Repository v1.0) dag@wieers.com " from http //dag.wieers.com/packages/RPM-GPG-KEY.dag.txt Is this ok [y/N] y 3. DAGについて 概要 VLC media playerをダウンロードするためには、DAGリポジトリを追加する必要があります。 Redhatが公認していないパッケージはリポジトリに公開されていません。そのため、RedhatやCentOSは、他のディストリビューションに比べて、インストールできるパッケージが少ないです。この問題を解消するのが、DAGです。DAGリポジトリを追加する事で、VLC media playerなど様々なパッケージを追加する事ができます。 DAGリポジトリの追加方法 DAGリポジトリの追加方法はいろいろあります。CentOS-Base.repoにDAGの設定を加筆する方法でも構いません。 # vi /etc/yum.repos.d/CentOS-Base.repo [dag] name=Dag baseurl=http //ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/ enabled=1 gpgcheck=1 gpgkey=http //dag.wieers.com/packages/RPM-GPG-KEY.dag.txt また、RPMで設定する事もできます。下記RPMパッケージをインストールすると、自動的にDAGの設定が施されます。 wget http //apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm 4. トラブル対応 proxy 設定 プロキシを使う場合は、以下環境変数を設定する必要があります。 export HTTP_PROXY="http // IP address port /" network adpterの設定 VMware, coLinuxなどの仮想環境を使う場合は、network typeに注意する必要があります。NATを使用すると、FirewallやProxyを通過できない可能性があります。
https://w.atwiki.jp/2ch-dic/pages/7.html
た 行 忠吉さん【ただきち-さん】 ____ / \ /● ● \| / Y Y| | ▼ | | |_人_ \/" \. \_ ” \ |" ”” \ | \ | | \ | | |\ | / | | \| / / | | |/| | | | | ||| | | |_/ ̄ ̄/ / | \| | \ |\___/ (((__|(((___|-(( ̄ ̄ _/  ̄ ̄ ̄ ̄ ̄ 「あずまんが大王」〔著:あずまきよひこ・掲載:月刊コミック電撃大王(メディアワークス/角川書店)〕に登場する、天才美少女・美浜ちよ の飼っている大型犬。人見知りしない、優しい性格の持ち主。 しかし、このアスキーアートが転用されて「ぞぬ」や「でか頭犬」に作り替えられてしまい、挙げ句の果てにこの絵をトップに飾った、顔文字板の「あずまんが大王」スレッドが彼らによって荒らされてしまうとは…。(合掌) でか頭犬(ぞぬ犬) / ̄ ̄ ̄ ̄\ / ● ●、 |Y Y \ | | | ▼ | | \/ _人.| | ___ノ \ ./ | | | (__)_) 田中【た-なか】 / ̄ ̄ ̄ ̄ ̄ ミ / ,――――-ミ / / / \ | | / ,(・) (・) | (6 つ | | ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | /__/ / < なわけねぇだろ! /| /\ \________ 元ネタは爆笑問題の田中裕二。 モナーやギコ猫のように広い人気はなく芸もあまりないのだが、一部の人間がしつこくコピぺを繰り返しそのまま定着してしまった。オーソドックスなツッコミをするときに時たま使用されるものの、今現在でもこれをコピペすると周囲から嫌われるので注意。 たる【たる】 ショタよりさらに幼い男の子が好きなのがたる。たるるーが語源。 厨房【ちゅう-ぼう】 中学生→中坊→厨房。 特に中学生というわけではないが、ガキっぽい人のことを指します。酒鬼薔薇事件以降、Web上で頻繁に使われるようになりました。「消防」とか「生姜臭え」「工房」とかの造語を使う人もいますが、これらはそれぞれ「小坊」「小学生」「高坊」という意味です。 また、狭い意味では、せっせとコピペに励む人を指すこともあります。基本的に罵倒語、差別用語なので、使わない方が無難。 厨房注意報【ちゅう-ぼう-ちゅう-い-ほう】 夏休みなどで2chに学生比率が高まる時期にアナウンスされる。この時期は煽り、荒らしがどっと増える。 珍走団【ちん-そう-だん】 暴走族という呼び方では不良が憧れるので、格好悪い呼び名を付けようという事になって、珍走団が選ばれました。 http //www.google.com/search?q=%92%BF%91%96%92c btnG=Google+%8C%9F%8D%F5 hl=ja lr= 壺【つぼ】 「2ちゃんねる」のこと。主にアンチ2ちゃんな「あめぞう」の人たちが使います。2ちゃんねるのトップ絵に、壺が描かれていることから由来。 あめぞう常連が、2ちゃんねるのことを「タン壷」と称した事を発端とし、ひろゆき氏がジョークを交えて壺の画像を持ってきたいう説あり。 あめぞうの常連さんから「西村博之氏を崇めているような常連達の様子が、壷を売る統一教会の信者のようなものだから」とのご指摘を頂きました。 2ちゃんねるの名前の由来 ビデオやゲームのように何でも映せるチャンネルという意味があるらしい。しかしあめぞうを1chとし、その二番煎じだから2chという説もあり。 ※2chのトップページには壷がなくなりました。 電波【でん-ぱ】 要するに「気狂い」のこと。先天的な障害者の人を指す場合もあるし、精神異常の病気の人を指す場合もあります。 精神疾患や薬物・アルコール中毒などで、妄想症状を持つ場合、「電波が殺せと命令する」「毒電波が攻撃してくる」など、目に見えないが他者からの操りを愁訴することが多かったことから、既知害のことを「電波」というようになった、ってことらしいです。 ネタ元はleafビジュアルノベルの「雫~しずく~」のヒロイン、月島瑠璃子だと言う説もあります。ちなみに「気狂い」は放送コードに引っ掛かる為、「基地外」「キティ」など代用する場合がありますが、特に意味は無いです。 ドキュン【ど-きゅん】 「高卒死ねば?」という過激な主張をしている マミー石田氏が使いはじめた言葉と言われています。元々は、人生あきらめてるヤンキー連中など最終学歴が高卒である人間の総称にして蔑称。現在では、使用者によって意味がかなり揺れています。 語源は「目撃ドキュン」という、自分のかつての不幸少年・少女ぶりを恥ずかし気も無く披露する番組。また、「DQN」「ドキュソ」「スギャン」も同じ意味です。 匿名Proxyサーバ【とく-めい-ぷろくし-さーば】 接続者が接続先へ送信する環境変数(REMOTE_HOST、USER_AGENT等)を隠蔽するProxyサーバのこと。情報隠蔽を目的として使用されます。 また、この匿名プロクシを複数差し挟むことを「多段プロクシ」、「多段串」などと呼ぶ。複数のProxyサーバを中継することにより、環境変数の隠蔽をより入念にし、匿名性をさらに高めることができます。 ただし、中継したProxyサーバには確実にアクセスログが残るので、相手(接続先)が本気でトレースすれば、洗われてしまいます。 ドム【どむ】 DOM=Download Only Member の略。Warez用語。ダウンロードばかりでアップロードしないユーザー。 ウェアーズの世界では、ソフトウェアの共有が共通認識なので、3本ダウンロードしたら1本はアップしないと嫌われます。他にも、"Document Object Model" の略でもあるのですが、こちらは学術的な分野での専門用語なので、滅多に使われません。 トンドル【とん-ど-る】 2chのサーバーが落ちていたり、スレッドが飛んだりしている状態。飛んでる 飛んどる トンドル。 な 行 名無しさん【な-な-し-さん】 「名無しさん」or「名無しさん@1周年」は、名前の欄に何も入力しないと表記されます。絶対に「名無しさんてあちこちで見ますけど暇な人ですね」などと書き込まないようにしましょう。 ちなみに固定ハンで頑張っている常連は、騙り(偽物)が出ないように、管理者にメールで申請して、キャップというものを貰います。 2チャンネラー【に-ちゃんねらー】 2chの常連のこと。街の看板に厨房と書かれていて敏感に反応するようなら、貴方は2chに侵されています。間違えても一般人に「逝ってヨシ」「スマソ」とか言わないように。 ネオむぎ茶【ねお-むぎ-ちゃ】 ?___ / \ / ヽ _____ ( (*1) / ( (( □━□ ) < ヒヒヒヒ・・・ (6 J |) \_____ ヽ ― ノ ∧?∧ - ( ´д`) ~ ┘ └ │)\ + / \\ /| │) │ / ノ ∥│ │) ノ 旧名キャットキラー。言わずと知れた、2ちゃんねるに出入りしてた人殺しにしてバスジャック犯。キャットキラーのキャットはネオむぎ茶を相手にしていた人物がギコ猫の口を借りて発言したことからギコ猫だと思われる。 犯罪予告スレの保存板(約1.8MB) ネカマ【ね-かま】 「ネットオカマ」の略。女のフリをして書き込む男。 ネナベ【ね-なべ】 「ネットオナベ」。男のフリをして書き込む女。 粘着【ねん-ちゃく】 ひとつのスレッドや話題にしつこく執着したりする困った人のこと。 は 行 番号ゲッター【ばん-ごう-げっ-たー】 今だ!2番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ 主にクソスレの2番に書き込みされる煽り書き込み。 ヒッキー【ひっ-きー】 巷間では、「宇多田ヒカル」を指すこともありますが、2ちゃんねるでは「ひきこもり」を指す言葉です。これも罵倒語、差別用語なので、使わない方が無難です。 悲惨な1【ひ-さん-な-いち】 神経や知性を疑われる常識外れなスレッドを立てた場合に付くレス。この後に1の主治医です。1の母親です。などと続いて晒しものにされる。 ひろゆき【ひろ-ゆき】 2ちゃんねる管理人。うまい棒が好物。デブオタクであると勝手に想像されてたりしたが、週刊アスキー2000.5.3に顔写真とインタビューが掲載。それなりに男前であることが判明。女性住人に大人気になる。その後ネオむぎ茶関連でテレビにも出演。 fusianaネタ【ふしあな-ねた】 名前欄にfusianasanと入れるとリモホが表示される機能を逆手にとった悪戯。相手のIPアドレスをバラしたい時に使う。 使用例:「裏2chの入り方。名前欄にhttp //www.fusianasan.2ch.net/と入力します。メアドにura2chと入力します。最後に本文にguest/guestと入力して書き込みボタンを押します」 アフォなアダルト業者がシャレで裏2ちゃんを開設してあります(藁 http //fusianasan.2ch.cc/ http //mokorikomo.2ch.cc/ 国際電話経由でなんとかダイアルアップ接続させようとしてますよ。ダイアルアップ先には欲しいエロ画像/動画はないでしょう。WinMXで探すか半角板へ逝きましょ。 ぷに【ぷ-に】 ロリコンより軽少の奴を指すと思われる。自分のかわいさをアピールするためにぷにぷに言う女がいるが、それとは別なので注意が必要。 ブラクラ【ぶら-くら】 ブラウザクラッシャーの略。ウインドウを大量に開く、フロッピードライブにアクセスする、等の悪戯をするページのことです。2chに書かれているURLをむやみにクリックしないように…。 例外もありますが、基本的にはその場限りのイタズラですので、ひっかかってもそれほど心配する必要はありません。再起動すれば復旧できます。
https://w.atwiki.jp/xfinder/pages/19.html
右クリックメニューやツールバーなどに、自分好みのランチャを設定してカスタマイズするための手引きです。 ランチャでできること、できないこと X-Finderのランチャでできること X-Finder自体の操作 タブの操作、表示形式の切替やソートの変更などのX-Finder内部の動作はほぼ全て割り当て可能 ファイル(フォルダ)のコピー、移動、リネーム これらはランチャ実行直後なら「元に戻す」ことが可能 プログラム(パス)の実行 単純なプログラムの実行に加え、コマンドラインオプションを付与しての記述やコマンドプロンプトで使用するコマンド等も記述可能 任意のキーの実行 他のプログラムへのファイル(フォルダ)のドラッグ&ドロップ ファイル(フォルダ)のパスを取得してその都度展開 上記動作の組合せ X-Finderのランチャでできないこと コマンドラインオプションを持たないプログラムの起動以外の操作 任意のパスの実行、あるいは任意のキーを押したという信号の送信以外はできない X-Finder以外のプログラムの動作の把握 プログラムAが起動終了したらプログラムBを起動~といったことは不可能 「パス」の記述の仕方 基本ルール パスは1行ごとに意味を持つ パスの内容は上から1行ずつ実行される 同時に実行されるわけではない パスに半角スペースが含まれる場合、""でくくらないとパスが正常に認識されない 「C \My document」の場合、「"C \My document"」としないと「C \My」と認識される 記述する内容は大きく分けて2種類 X-Finderのランチャ内のみで有効な記述 X-Finderに予め設定されている「ビルトインコマンド」等 X-Finder以外(ショートカットの"リンク先"やbatファイル内等)でも有効な記述 実際のファイル(フォルダ)のパス、それに付随するコマンドラインオプション等 知っておくと便利な機能 X-Finderをインストールしたパス(XF.exeがある場所)は、%X-Finder%という文字列(環境変数)で置換できる 行の先頭に「数字 + 」を付けると、その行の動作を変更できる "0 "・・・移動 "1 "・・・実行 "2 "・・・渡す "3 "・・・送る 全体の動作を「渡す」や「送る」にして一部分だけを「実行」で動作させるようにすれば、 「コマンドラインオプション付きでパスを実行するランチャを 特定の拡張子のときのみメニューに表示させる」 といったことも可能 「動作」について 移動 「パス」に記述されたパスをX-Finderのタブで開く動作。「新規タブ」にチェックを入れると新しいタブで開く。 主に「お気に入りのフォルダを開く」「決まった画像やテキストをタブで開く」といったランチャで使用される。 実行 「パス」に記述されたパスを実行する動作。 X-Finderのビルトインコマンドを実行する際や、特定のプログラムを実行する際、またコマンドラインオプションを使用してプログラムを実行する際などに使用される。 世間一般で呼ばれる「ランチャ」の感覚にもっとも近い動作。 渡す フォーカスがあるファイルやフォルダをパスに記述したプログラムで開く動作。「拡張」で対象とするファイルの種類を指定できる。 ダブルクリックやEnterキー押し以外にも「関連付け」っぽい動作をさせたいときによく使われる。 送る 選択されたファイルやフォルダをパスに記述したプログラムorフォルダに送る動作。相手がプログラムならファイルをそのプログラムで開き、フォルダの場合は「送る動作」の指定によってコピーor移動orショートカットの作成になる。「拡張」で対象とするファイルの種類を指定できる。 ファイルの振り分け動作、又は複数ファイルを対象とした関連付けによく使われる。 「拡張」について 主に動作が「渡す」や「送る」のときにメニューを表示するかどうかのフィルタとして動作する。
https://w.atwiki.jp/hyosida/pages/12.html
Raspberry Pi (2) Nginxでcgiの続き cgiでpythonを動かす ちょっと難しかった。まず、pythonプログラムの先頭行。Webで見るとこういう風になっている例があった。 #!/usr/bin/env python # -*- coding utf-8 -*- でもこれだと動く場合と502というエラーで動かない場合があった。結局こうした。 #!/usr/bin/python3 # -*- coding utf-8 -*- これだと動かなかったプログラムが動いた。python2なのかpython3なのかの問題なのか。 #!/usr/bin/env python3 # -*- coding utf-8 -*- これが正しい模様。envってのは環境変数がどうのこうので、、っという説明がどっかにあったよくわからん。 日本語を表示させるのもちょっと難しかった。結局こうすればよかった。 #!/usr/bin/python3 # -*- coding utf-8 -*- print("Content-Type text/html; charset=utf-8") print() print( Hello, World! /BR ) print( こんにちわ! 日本! ) とりあえず以上。ファイル名の拡張子は.cgiにしている。本当は.pyにしたいが今の設定だとダメ。 cgiのプログラムの置き場所をcgi-bin/にする 今の設定だとcgiプログラムはどこに置いても動作する。それでもいいんだが、普通はcgi-bin/以下に置かなければいけないというルールが多いと思われる。でもどうしたらいいかわからない。 jcode.plのせいでエラーが出るのを直す そこらへんにある掲示板のCGIのperlプログラムを持ってきて動かしてみたが、502エラーが出る。理由はjcode.plという何やら日本語のコードを変換するプログラムが古くて最新のperlと合わないらしい。 https //piano2nd.smb.net/PukiWiki/index.php?jcode.pl ↑ここからjcode.plを貰った。そしたら、うまく動いた。サンプルコードはここから入手した↓ https //www.rescue.ne.jp/ 随分古くからあるサイトらしい。perlで書かれたCGIを使った掲示板、とか、もう20年前の話なのか。 ちなみに、サーバがエラーを出すときlogを見ればよいことが分かった。 tail -f /var/log/nginx/error.log こんなエラーを出していた。 2020/02/15 12 55 04 [error] 1628#1628 *53 FastCGI sent in stderr "syntax error at ./jcode.pl line 292, near "do convf("Compilation failed in require at /var/www/html/cgi-bin/memo.cgi line 48" while reading response header from upstream, client 240b 11 15e0 2800 8f9 309e 62d2 1d76, server _, request "GET /cgi-bin/memo.cgi HTTP/1.1", upstream "fastcgi //unix /var/run/fcgiwrap.socket ", host "raspberrypi", referrer "http //raspberrypi/" これを見てjcode.plの292行目がおかしいことが分かり、その後、最新のjcode.pl-2.13というのを探してきたがそうすると、 defined(%hash) is deprecated at ../perllib/jcode.pl line 684. (Maybe you should just omit the defined()?) defined(%hash) is deprecated at ../perllib/jcode.pl line 693. (Maybe you should just omit the defined()?) というエラーが出た。中身はよくわからない。よく見たらここにも書かれていたじゃん。 https //www.rescue.ne.jp/whatsnew/blog.cgi/permalink/20161208115240 Raspberry Pi Raspberry Pi (3)